using SqlsugarService.Application.DTOs.LMZWorkSchedule;
using SqlsugarService.Application.Until;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace SqlsugarService.Application.IService.LMZWorkSchedule
{
    /// <summary>
    /// LMZ质检系统服务接口
    /// </summary>
    public interface ILMZWorkScheduleService
    {
        /// <summary>
        /// 分页获取质检系统基础列表
        /// </summary>
        /// <param name="queryDto">查询参数</param>
        /// <returns>分页的质检列表</returns>
        Task<ApiResult<PageResult<List<LMZWorkScheduleListDto>>>> LMZGetWorkSchedulePagedAsync(LMZWorkScheduleQueryDto queryDto);

        /// <summary>
        /// 分页获取质检系统详细列表
        /// </summary>
        /// <param name="queryDto">查询参数</param>
        /// <returns>分页的质检详细列表</returns>
        Task<ApiResult<PageResult<List<LMZWorkScheduleDetailDto>>>> LMZGetWorkScheduleDetailPagedAsync(LMZWorkScheduleQueryDto queryDto);

        /// <summary>
        /// 根据ID获取质检详情
        /// </summary>
        /// <param name="taskId">任务ID</param>
        /// <returns>质检详情</returns>
        Task<ApiResult<LMZWorkScheduleDetailDto>> LMZGetWorkScheduleByIdAsync(Guid taskId);

        /// <summary>
        /// 分页获取质检记录列表（只显示已质检状态）
        /// </summary>
        /// <param name="queryDto">查询参数</param>
        /// <returns>分页的质检记录列表</returns>
        Task<ApiResult<PageResult<List<LMZWorkScheduleListDto>>>> LMZGetInspectionRecordsPagedAsync(LMZWorkScheduleQueryDto queryDto);

        /// <summary>
        /// 获取质检方案列表
        /// </summary>
        /// <returns>质检方案列表</returns>
        Task<ApiResult<List<QualityInspectionDto>>> LMZGetQualityInspectionPlansAsync();
    }
}